// 超出时间限制
/**
 * @param {string} s
 * @param {number[][]} queries
 * @return {number[]}
 */
var platesBetweenCandles = function (s, queries) {
  let n = queries.length;
  // 结果数组
  let ans = [];

  // 数一下|
  for (let i = 0; i < n; i++) {
    // 最左边的蜡烛
    let l = s.slice(queries[i][0], queries[i][1] + 1).indexOf("|");
    // 最右边的蜡烛
    let r = s.slice(queries[i][0], queries[i][1] + 1).lastIndexOf("|");
    // 没找到蜡烛，或只有一根蜡烛，结果为0
    if (l === -1 || l === r) {
      ans[i] = 0;
    } else {
      // 盘子数量
      let count = 0;
      // 两个以上的蜡烛
      for (let j = l; j < r; j++) {
        // 计算最左最右蜡烛之间盘子的数量
        if (s.slice(queries[i][0], queries[i][1] + 1)[j] === "*") {
          count++;
        }
      }
      ans[i] = count;
    }
  }

  return ans;
};
// #region
/* var platesBetweenCandles = function (s, queries) {
  let n = queries.length;
  // 结果数组
  let ans = [];
  // 子串数组
  let strArr = [];

  // 找到数组对应的子串
  for (let i = 0; i < n; i++) {
    strArr.push(s.slice(queries[i][0], queries[i][1] + 1));
  }

  let m = strArr.length;
  // 数一下|
  for (let i = 0; i < m; i++) {
    // 最左边的蜡烛
    let l = strArr[i].indexOf("|");
    // 最右边的蜡烛
    let r = strArr[i].lastIndexOf("|");
    // 没找到蜡烛，或只有一根蜡烛，结果为0
    if (l === -1 || l === r) {
      ans[i] = 0;
    } else {
      // 盘子数量
      let count = 0;
      // 两个以上的蜡烛
      for (let j = l; j < r; j++) {
        // 计算最左最右蜡烛之间盘子的数量
        if (strArr[i][j] === "*") {
          count++;
        }
      }
      ans[i] = count;
    }
  }

  return ans;
}; */
// #endregion

let s = "***|**|*****|**||**|*",
  queries = [
    [1, 17],
    [4, 5],
    [14, 17],
    [5, 11],
    [15, 16],
  ];
let demo = platesBetweenCandles(s, queries);
console.log(demo);
